﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp3
{
    class Program
    {
        static void Main(string[] args)
        {
            //            二、创建一个Shape（形状）类，此类包含一个名为color的数据成员，用于存储颜色，这个类还包含一个名为GetArea()的虚方法（这个方法是用来获取形状面积的）。
            //基于这个Shape，创建两个子类：Circle（圆形类）和Square（正方形类），Circle类中包含radius（半径）的数据成员，Square类中包含sideLen（边长）的数据成员，这两个子类都去重写父类的GetArea()方法，各自去实现计算自己的面积。

            //在主类中添加一个方法，参数类型就是Shape，方法体中，用形参去调用GetArea()方法。
            //main方法中去测试这个方法。
            Console.WriteLine("请输入要计算面积的图形：圆 或 正方形");
            string st = Console.ReadLine();
            switch (st)
            {
                case "圆":
                    Circle c = new Circle();
                    Console.WriteLine("请输入一种颜色");
                    c.Color = Console.ReadLine();
                    Console.WriteLine("请输入圆的半径");
                    c.Radius = double.Parse(Console.ReadLine());
                    c.GetArea();
                    break;
                case "正方形":
                    Square s = new Square();
                    Console.WriteLine("请输入一种颜色");
                    s.Color = Console.ReadLine();
                    Console.WriteLine("请输入正方形的边长");
                    s.SideLen = double.Parse(Console.ReadLine());
                    s.GetArea();
                    break;    
                default:
                    break;
            }

        }
    }
    class Shape
    {
        public string Color { get; set; }

        public virtual void GetArea()
        {
            Console.WriteLine();
        }
    }
    class Circle:Shape
    {
        public Double Radius { get; set; }
        public override void GetArea()
        {
            base.GetArea();
            Console.WriteLine(Color+"的圆的面积为"+(Radius*Radius*3.14));
        }
    }
    class Square:Shape
    {
        public double SideLen { get; set; }
        public override void GetArea()
        {
            base.GetArea();
            Console.WriteLine(Color+"的正方形的面积为" + (SideLen * SideLen ));
        }
    }
}
